﻿#region Usings

using System;
using System.Xml.XPath;
using Yandex.Market.Api.YmlSerialization;

#endregion

namespace Yandex.Market.Api.Model
{
    /// <summary>
    ///   Упрощенное описание.<br />
    ///   Это базовый, наиболее простой, но лишенный многих возможностей, тип описания.
    /// </summary>
    [YmlSerializeAs("offer")]
    [Serializable]
    public class OfferSimple : OfferBase
    {
        /// <summary>
        /// 
        /// </summary>
        public OfferSimple()
        {}

        internal OfferSimple(IOffer offer) : base(offer)
        {}

        /// <summary>
        ///   Наименование товарного предложения. Oбязательный элемент.
        /// </summary>
        [YmlSerializeAs("name")]
        [YmlElementOrder(200)]
        public string Name { get; set; }

        /// <summary>
        ///   Производитель. Необязательный элемент.
        /// </summary>
        [YmlSerializeAs("vendor")]
        [YmlElementOrder(210)]
        public string Vendor { set; get; }

        /// <summary>
        ///   Код товара (указывается код производителя). Необязательный элемент.
        /// </summary>
        [YmlSerializeAs("vendorCode")]
        [YmlElementOrder(220)]
        public string VendorCode { set; get; }

        internal static OfferSimple CreateOfferSimpleFromXml(XPathNavigator nav, IOffer dummyOffer)
        {
            OfferSimple offer = new OfferSimple(dummyOffer);

            XPathNavigator node = nav.SelectSingleNode("name");
            if(node != null)
                offer.Name = node.Value;

            node = nav.SelectSingleNode("vendor");
            if(node != null)
                offer.Vendor = node.Value;

            node = nav.SelectSingleNode("vendorCode");
            if(node != null)
                offer.VendorCode = node.Value;

            return offer;
        }
    }
}